In a conventional MFP (multifunction peripheral) apparatus, input image data is data that has been read in from a scanner, data that has been received by facsimile, etc., and output image data is image data that has been formed by a printer, image data transmitted by facsimile, etc.
In such an MFP apparatus, usually a dedicated code processing unit is provided for each image processing function. FIG. 1 illustrates the relationship (the assignment of code processing tasks) between the image processing functions and code processing units in such a conventional MFP apparatus.
As shown in FIG. 1, the image processing functions and code processing units are in one-to-one correspondence. In other words, the number of code processing units provided is equivalent to the number of image processing functions. Accordingly, the largest number of code processing units that can operate simultaneously are started up in multiplexed fashion, and if a processing request is issued, then processing is executed using the code processing unit that has been prepared.
This arrangement is such that if it is desired to request the code processing units to execute processing with regard to tasks classified by function, image encoding processing can always be executed using the code processing unit that has been assigned to its own function.
The reason why one code processing unit can thus be assigned to each function of all of the functions is that the number of image input/output paths is small and so is the number of resources required by one code processing unit.
With a modern MFP apparatus, however, the number of additional image processing functions is greater than before and the functions are more diverse. Consequently, it is difficult to provide code processing units for image processing functions in one-to-one correspondence. The reasons for this will now be described in detail.
The first reason is related to an increase in the number of image input/output paths of an MFP apparatus. Specifically, there has been an increase in the number of image input/output paths over that heretofore. For example, with regard to inputs, there are input paths for reading in files from a memory card, for receiving facsimile transmissions over the Internet, for receiving network files and for receiving e-mail, etc. With regard to outputs, there are output paths for transmitting facsimile documents over the Internet, for transmitting network files, for transmitting e-mail, for writing to an external memory card and for network scanning, etc.
Thus, there are too many functions to allow the maximum number of code processing units to operate function by function, and attempting to achieve this would use a large quantity of resources (in terms of memory capacity and excessive load upon the CPU).
The second reason is an increase in the amount of image code data processed. That is, the images processed now tend to be color images rather than monochrome, and resolution is higher than before. This results in an increase in the amount of code processed. As a consequence, it is necessary for one code processing unit to possess more resources than before, such as temporary buffers for processing.
Thus, there is an increase in amount of resources used by one code processing unit, and the number of code processing units that must be provided must also be increased. As a result, a very large quantity of resources becomes necessary, a memory of larger capacity and a CPU of high processing speed must be provided. This is disadvantageous in that it leads to a rise in apparatus cost.
Accordingly, an object of the present invention is to provide an image processing apparatus for exploiting resources in the apparatus to the maximum degree and making it possible to efficiently execute code processing corresponding to each image processing function.